package practiceProjects;

import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.util.Scanner;

/**
 * @Project ：learn_java
 * @File ：GenerateCamelCase.java
 * @IDE ：IntelliJ IDEA
 * @Author ：自由如风间
 * @Date ：2025/3/16 16:16
 * @Description ：将给定字符串转换成驼峰命名，且直接将结果保存到系统的剪贴板
 */

public class GenerateCamelCase {
    public static void main(String[] args) {
        System.out.print("输入字符串：");
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        StringBuilder res = new StringBuilder();

        boolean upper = false;

        for (char i : s.toCharArray()) {
            if (i == ' ') {
                upper = true;
            } else if (upper) {
                res.append(Character.toUpperCase(i));
                upper = false;
            } else {
                res.append(i);
            }
        }

        while (true) {
            System.out.println("选择格式\n大驼峰：1\t小驼峰：2\t");
            int c = scanner.nextInt();
            scanner.nextLine(); // 消耗掉换行符

            if (c == 1) {
                upper = true;
            } else if (c == 2) {
                upper = false;
            } else {
                System.out.print("请输入有效的数字！\n请输入：");
                continue;
            }
            break;
        }

        // 首字母的驼峰处理
        char firstChar = res.charAt(0);
        if (upper) {
            res.setCharAt(0, Character.toUpperCase(firstChar));
        } else {
            res.setCharAt(0, Character.toLowerCase(firstChar));
        }

        System.out.println("生成结果：" + res);

        String text = res.toString();

        // 创建一个封装了文本的 StringSelection 对象
        StringSelection selection = new StringSelection(text);

        // 获取系统剪贴板对象
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

        // 将文本内容设置到剪贴板中
        clipboard.setContents(selection, null);

        System.out.println("文本已复制到剪贴板！");
    }
}
